ম্যাক্রো এবং কন্ডিশনাল কম্পাইলিং

Computer Programming - সি স্ট্যান্ডার্ড লাইব্রেরি রেফারেন্স (C Standard Library Reference) Mathematical Constants এবং Macros (গাণিতিক ধ্রুবক এবং ম্যাক্রোস) |
186
186

ম্যাক্রো এবং কন্ডিশনাল কম্পাইলিং

সি প্রোগ্রামিং ভাষায় ম্যাক্রো এবং কন্ডিশনাল কম্পাইলিং শক্তিশালী টুল হিসেবে কাজ করে, যা প্রোগ্রামারের জন্য কোড রিইউজ, কোড অপটিমাইজেশন এবং প্ল্যাটফর্ম-নির্ভর কোড লেখার সুবিধা প্রদান করে।

১. ম্যাক্রো (Macro)

ম্যাক্রো একটি ধরনের প্রি-প্রসেসর নির্দেশনা যা কোডের অংশকে রিপ্লেস করে। এটি কম্পাইলারের পূর্বে কোডকে পরিবর্তন করে (রিপ্লেস) এবং কোডের পুনঃব্যবহার নিশ্চিত করে। C প্রোগ্রামে ম্যাক্রো দুটি প্রধান প্রকারের হতে পারে:

  1. সাধারণ ম্যাক্রো
  2. ফাংশন ম্যাক্রো

সিঙ্কট্যাক্স:

#define MACRO_NAME replacement_text

উদাহরণ: সাধারণ ম্যাক্রো

#include <stdio.h>

#define PI 3.14159  // ম্যাক্রো ডিফাইনেশন

int main() {
    printf("Value of PI: %f\n", PI);  // PI কে 3.14159 দিয়ে রিপ্লেস করবে
    return 0;
}

এখানে, #define দ্বারা PI নামক একটি ম্যাক্রো তৈরি করা হয়েছে, যা পরে কোডে PI লিখলে 3.14159 দিয়ে রিপ্লেস হবে।

উদাহরণ: ফাংশন ম্যাক্রো

#include <stdio.h>

#define SQUARE(x) ((x) * (x))  // ফাংশন ম্যাক্রো

int main() {
    int num = 5;
    printf("Square of %d is %d\n", num, SQUARE(num));  // SQUARE(num) কে num*num দিয়ে রিপ্লেস করবে
    return 0;
}

এখানে, SQUARE(x) ফাংশন ম্যাক্রো তৈরি করা হয়েছে, যা একটি সংখ্যা গ্রহণ করে এবং তার বর্গফল প্রদান করে।

বিঃদ্রঃ ম্যাক্রো ব্যবহারের সময় প্যারেনথেসিস ব্যবহার করে সাবধান থাকতে হবে যাতে গণনা ঠিকভাবে হয়।


২. কন্ডিশনাল কম্পাইলিং (Conditional Compilation)

কন্ডিশনাল কম্পাইলিং একটি শক্তিশালী প্রি-প্রসেসর ফিচার যা কোডের অংশগুলি নির্দিষ্ট শর্তের উপর ভিত্তি করে অন্তর্ভুক্ত বা বাদ দেওয়ার অনুমতি দেয়। এটি সাধারণত প্ল্যাটফর্ম নির্ভর কোড বা নির্দিষ্ট কনফিগারেশন ব্যবহারের জন্য ব্যবহৃত হয়।

সিঙ্কট্যাক্স:

  1. #ifdef / #ifndef (If defined / If not defined)
  2. #if / #elif / #else / #endif (Conditional check)

উদাহরণ: #ifdef এবং #endif (If Defined)

#include <stdio.h>

#define DEBUG  // DEBUG ম্যাক্রো ডিফাইন করা

int main() {
    #ifdef DEBUG  // যদি DEBUG ডিফাইন করা থাকে
        printf("Debug mode is ON\n");
    #else
        printf("Debug mode is OFF\n");
    #endif

    return 0;
}

এখানে, #ifdef DEBUG কোডটি শুধুমাত্র তখনই চালানো হবে যখন DEBUG ম্যাক্রো ডিফাইন করা থাকবে। #else ব্লকের কোডটি তখনই চালানো হবে যখন DEBUG ডিফাইন করা না থাকবে।

উদাহরণ: #ifndef (If Not Defined)

#include <stdio.h>

#ifndef MAX_BUFFER_SIZE  // যদি MAX_BUFFER_SIZE ডিফাইন না করা থাকে
    #define MAX_BUFFER_SIZE 1024  // ডিফাইন করা হচ্ছে
#endif

int main() {
    printf("Max buffer size: %d\n", MAX_BUFFER_SIZE);
    return 0;
}

এখানে, #ifndef MAX_BUFFER_SIZE চেক করবে যে MAX_BUFFER_SIZE ডিফাইন করা হয়নি। যদি না করা থাকে, তবে এটি #define MAX_BUFFER_SIZE 1024 এর মাধ্যমে সেটি ডিফাইন করবে।

উদাহরণ: #if এবং #elif (Conditional Expressions)

#include <stdio.h>

#define ENVIRONMENT 1  // 1: Development, 2: Production

int main() {
    #if ENVIRONMENT == 1
        printf("Running in Development mode\n");
    #elif ENVIRONMENT == 2
        printf("Running in Production mode\n");
    #else
        printf("Unknown Environment\n");
    #endif

    return 0;
}

এখানে, #if চেক করবে ENVIRONMENT এর মান। যদি এর মান হয়, তবে ডেভেলপমেন্ট মোডে প্রিন্ট করবে, আর যদি হয়, তবে প্রোডাকশন মোডে প্রিন্ট করবে।


সারসংক্ষেপ

নির্দেশনাবর্ণনা
#defineএকটি ম্যাক্রো ডিফাইন করা (এটি রিপ্লেসমেন্ট হিসাবে কাজ করে)।
#ifdefযদি ম্যাক্রো ডিফাইন করা থাকে তবে কোড চালাবে।
#ifndefযদি ম্যাক্রো ডিফাইন না করা থাকে তবে কোড চালাবে।
#ifকন্ডিশনাল এক্সপ্রেশন দিয়ে শর্তাধীন কোড চালানো।
#elifএকাধিক শর্ত পরীক্ষা করতে ব্যবহৃত হয়।
#elseপূর্ববর্তী শর্তের মেল না খেলে কোড চালানো।
#endifকন্ডিশনাল কম্পাইলিং শেষ করা।
  • ম্যাক্রো কোড পুনঃব্যবহারের জন্য ব্যবহৃত হয় এবং এটি একটি নাম (যেমন PI) দ্বারা মান প্রতিস্থাপন করে।
  • কন্ডিশনাল কম্পাইলিং প্ল্যাটফর্ম নির্ভর কোড লেখার জন্য ব্যবহৃত হয়, যাতে একই কোড ভিন্ন পরিবেশে বা কনফিগারেশনে চলতে পারে।

ম্যাক্রো এবং কন্ডিশনাল কম্পাইলিং ব্যবহার করার মাধ্যমে আপনার প্রোগ্রাম আরও নমনীয় এবং কার্যকরী হতে পারে, বিশেষ করে যখন আপনি একাধিক প্ল্যাটফর্মে কোড রান করান।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion